/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jav.per;

import com.jav.data.InvMovilData;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

/**
 *
 * @author Javier
 */
public class PersisCaptura {

    private int consecutivo;
    private String codigoProducto;
    private int codProveedor;
    private int unidadesXpaca;
    private int pacas;
    private int unidades;
    private float precio;

    public String toString() {
        StringBuffer st = new StringBuffer();
        st.append(Integer.toString(getConsecutivo()))
                .append(InvMovilData.SEPA)
                .append(getCodigoProducto())
                .append(InvMovilData.SEPA)
                .append(getPacas())
                .append(InvMovilData.SEPA)
                .append(getUnidades())
                .append(InvMovilData.SEPA)
                .append(getPacas() * getUnidadesXpaca()+ getUnidades());

        return st.toString();
    }

    public int getConsecutivo() {
        return consecutivo;
    }

    public void setConsecutivo(int consecutivo) {
        this.consecutivo = consecutivo;
    }

    public int getCodProveedor() {
        return codProveedor;
    }

    public void setCodProveedor(int codProveedor) {
        this.codProveedor = codProveedor;
    }

    public String getCodigoProducto() {
        return codigoProducto;
    }

    public void setCodigoProducto(String codigoProducto) {
        this.codigoProducto = codigoProducto;
    }

    public int getPacas() {
        return pacas;
    }

    public void setPacas(int pacas) {
        this.pacas = pacas;
    }

    public float getPrecio() {
        return precio;
    }

    public void setPrecio(float precio) {
        this.precio = precio;
    }

    public int getUnidades() {
        return unidades;
    }

    public void setUnidades(int unidades) {
        this.unidades = unidades;
    }

    public int getUnidadesXpaca() {
        return unidadesXpaca;
    }

    public void setUnidadesXpaca(int unidadesXpaca) {
        this.unidadesXpaca = unidadesXpaca;
    }

    public byte[] persist() throws IOException {
        ByteArrayOutputStream bout = new ByteArrayOutputStream();
        DataOutputStream dout = new DataOutputStream(bout);
        try {
            dout.writeInt(getConsecutivo());
            dout.writeUTF(getCodigoProducto());
            dout.writeInt(getCodProveedor());
            dout.writeInt(getUnidadesXpaca());
            dout.writeInt(getPacas());
            dout.writeInt(getUnidades());
            dout.writeFloat(getPrecio());
            dout.flush();
        } finally {
            if (dout != null) {
                dout.close();
            }
            if (bout != null) {
                bout.close();
            }
        }
        return bout.toByteArray();

    }

    public void resurrect(byte[] by) throws IOException {
        ByteArrayInputStream bin = new ByteArrayInputStream(by);
        DataInputStream din = new DataInputStream(bin);
        try {
            setConsecutivo(din.readInt());
            setCodigoProducto(din.readUTF());
            setCodProveedor(din.readInt());
            setUnidadesXpaca(din.readInt());
            setPacas(din.readInt());
            setUnidades(din.readInt());
            setPrecio(din.readFloat());


        } finally {
            if (bin != null) {
                bin.close();
            }
            if (din != null) {
                din.close();
            }
        }
    }
}
